跳到主要内容

旁路由

5.3.开启网卡的混杂模式(这样是为了目前这个阶段能正常安装并配置,要永久开启需修改配置文件,稍后详述)

ip link set eth0 promisc on

5.4.创建docker的虚拟网络(可用docker network ls查看已创建了哪些)

docker network create -d macvlan --subnet=192.168.12.0/24 --gateway=192.168.12.1 -o parent=eth0 macnet

【名称为macnet,macvlan模式,将12.x修改为你自己主路由的网段】

5.5.开启openwrt容器:

docker run --restart always -d --network macnet --privileged unifreq/openwrt-aarch64:r9.10.24 /sbin/init

----------注意路由包名与前述导入的保持一致,后面的/sbin/init可以省略-

5.6.进入openwrt容器修改network设置(当然也可以安装docker的图形管理界面然后修改-----我的没有成功,所以就只能在ssh中敲命令啰)
------docker exec -it cranky_faraday bash→相当于进入openwrt的shell,其中cranky_faraday为openwrt容器名,可以通过运行docker container ls 显示出的NAMES字段获得(也可以在5.5.中-n的方式指定容器名)

------vi /etc/config/network,将option ipaddr 192.168.X.1替换为你想登录op的ip,注意其应在主路由网段内,如192.168.12.5,ESC,:wq
5.7.reboot或者/etc/init.d/network restart,此时已经可以在浏览器中输入192.168.12.5登录openwrt软路由了!

6.主路由与旁路由的设置

6.1.openwrt旁路由:关闭dhcp,网关填主路由ip,dns可以为主路由ip或114等公共dns,且将其【物理设置】中的【桥接接口】取消掉。还有最重要的1点:务必在防火墙添加规则设置:iptables -t nat -I POSTROUTING -j MASQUERADE并重启防火墙

6.2.主路由:开启dhcp,网关和dns填旁路由ip。

(如果主路由是openwrt固件可在dhcp服务器的dhcp选项中按下图填入-如此设置网关和dns依然不变,只有通过主路由dhcp分配到ip的设备之网关和dns才指向旁路由)

----如果主路由采用padavan及开启硬加速, 而用N1做旁路由时可能出现不兼容情况,导致网络卡顿,关闭主路由硬加速可以解决(将主路由padavan的外部网络WAN -> 外网设置选项卡 -> IPv4硬件加速,由OFFLOAD TCP/UDP for LAN/WLAN,修改为OFFLOAD TCP/UDP for LAN----

7.其他事项

如此设置后,会存在如下问题:

①.同网段设备均可以正常访问(包括ping)N1和op,但N1和op之间是不能互访的【需要将armbian的ip设置为静态的才行】

②.N1重启网卡混杂模式会失效,需设为永久开启

解决方案是修改/etc/network/interfaces文件(eth0部分):(谨慎操作,可能导致armbian永远无网络)
auto eth0
 iface eth0 inet manual
 up ip link set eth0 promisc on
 auto macvlan
 iface macvlan inet static
   address 192.168.12.104→修改成你需要的
   netmask 255.255.255.0
   gateway 192.168.12.1→需改成你的主路由ip或192.168.12.5(旁路由的ip)
   dns-nameservers 192.168.12.1→需改成你的主路由ip或12.5或再加1个公共dns比如114
   pre-up ip link add macvlan link eth0 type macvlan mode bridge
   post-down ip link del macvlan link eth0 type macvlan mode bridge

改完后重启网络systemctl restart networking或者重启系统查看效果